『Game Programming Patterns』
https://gyazo.com/7ff71d0bd14d0b0d2e64e066992ea834
訳
手に取った動機
モダンデザパタの本という感じらしい
タイトルに「Game」とあるが、Game関係なく良いらしい
デザパタを体系的に学んだことがないし、かといって昔のJavaの本とか読みたくないので読んでみるのは良さそうmrsekut.icon
題材がGame
ECとか銀行口座ではなく
Part1は、概要
Part2は、GoFのいくつかのパターンの再訪
Part3~Part6は、著者が有用だと考えた13個のパターンを4つのカテゴリに分けて解説
コードはC++
マジデワカランmrsekut.icon
目次から内容が全くわからないの良くない
良くわからんパターン名を章のタイトルにしても何の情報量もない
Part| イントロダクション
第1章 アーキテクチャ、実行速度、ゲーム
「良いこと言うね〜」というのが割と頻出するmrsekut.icon
Simple
私が書く最近のコードでは、なるべくすっきりと、問題を直接解決するコードになるよう努力しています。コードを読んだときに何をしているのかが正確に把握でき、他の解決策と間違えないようなコードです。データ構造とアルゴリズムを(ほぼこの順序で)正しく理解するように努め、そこを出発点とします。物事を単純に進めることができれば、最終的にはコード量が減少します。そうすれば変更するときにも脳に読み込むべきコード量が減るということです。
ただし、「単純なコードは、書く時間も短くなる」とは言ってはいないことに注意してください。
Part II デザインパターン再訪
C++がわからんせいか、どのへんがコマンドストリームなのかわからないmrsekut.icon
イメージしている「コマンドストリーム」となんか違う気がする
この本の中で「関数型の言語では~」の例としてJSコードが紹介されているけど、パラダイムとしての関数型では全然ないmrsekut.icon
ただ単に「関数が第一級オブジェクトである」言語を指して「関数型」と呼んでいる
第5章 プロトタイプ
第3章 フライウェイト
3.1 木があってこその森
3.2 1,000個のインスタンス
3.3 フライウェイトパターン
3.4 木を生やす場所
3.5 パフォーマンス
3.6 参考情報
第4章 オブザーバ
4.1 達成の認定
4.2 実装
4.3
「処理速度が遅すぎる」
4.4
「動的メモリ確保の処理が多すぎる」
4.5 残った課題
4.6 現在のオブザーバ
4.7 オブザーバの今後
第5章 プロトタイプ
5.1 デザインパターン「プロトタイプ」
5.2 言語の理論的枠組みとしてのプロトタイプ
5.3 プロトタイプとデータモデリング
第6章 シングルトン
6.1 シングルトンパターン
6.2 使用する理由
6.3 使用をためらう理由
6.4 代替手段
6.5 シングルトンに残されたもの
第7章 ステート
7.1 みんなそうだった
7.2 解決手段としての有限状態機械
7.3 列挙と分岐
7.4
「状態」のパターン
Z.5 各状態のクラス
7.6 状態への委任
7.7 状態のオブジェクトの存在場所
7.8 入口処理と出口処理
7.9 うますぎた話
7.10 階層的状態機械
7.11 プッシュダウン·オートマトン
7.12 どれほど有用なのか
Part III シーケンスのパターン
第8章 ダブルバッファ
8.1 パターン誕生の背景
8.2 パターン
8.3 パターンの適用条件
8.4 パターン使用上の注意
8.5 パターンのサンプルコード
8.6 検討項目
8.7 参考情報
第9章 ゲームループ
9.1 パターン誕生の背景
9.2 パターン
9.3 パターンの適用条件
9.4 パターン使用上の注意
9.5 パターンのサンプルコード
9.6 検討項目
9.7 参考情報
第10章 更新メソッド
10.1 パターン誕生の背景
10.2 パターン
10.3 パターンの適用条件
10.4 パターン使用上の注意
10.5 パターンのサンプルコード
10.6 検討項目
10.7 参考情報
Part IV ビヘイビアのパターン
第11章 バイトコード
11.1 パターン誕生の背景
11.2 パターン
11.3 パターンの適用条件
11.4 パターン使用上の注意
11.5 パターンのサンプルコード
11.6 検討項目
11.7 参考情報
第12章 サブクラスサンドボックス
12.1 パターン誕生の背景
12.2 パターン
12.3 パターンの適用条件
12.4 パターン使用上の注意
12.5 パターンのサンプルコード
12.6 検討項目
12.7 参考情報
第13章 型オブジェクト
13.1 パターン誕生の背景
13.2 パターン
13.3 パターンの適用条件
13.4 パターン使用上の注意
13.5 パターンのサンプルコード
13.6 検討項目
13.7 参考情報
Part V 分離のパターン
第14章 コンポーネント
14.1 パターン誕生の背景
14.2 パターン
14.3 パターンの適用条件
14.4 パターン使用上の注意
14.5 パターンのサンプルコード
14.6 検討項目
14.7 参考情報
第15章 イベントキュー
15.1 パターン誕生の背景
15.2 パターン
15.3 パターンの適用条件
15.4 パターン使用上の注意
15.5 パターンのサンプルコード
15.6 検討項目
15.7 参考情報
第16章 サービスロケータ
16.1 パターン誕生の背景
16.2 パターン
16.3 パターンの適用条件
16.4 パターン使用上の注意
16.5 パターンのサンプルコード
16.6 検討項目
16.7 参考情報
Part VI 最適化のパターン
第17章 データ局所化
17.1 パターン誕生の背景
17.2 パターン
17.3 パターンの適用条件
17.4 パターン使用上の注意
17.5 パターンのサンプルコード
17.6 検討項目
17.7 参考情報
第18章 ダーティフラグ
18.1 パターン誕生の背景
18.2 パターン
18.3 パターンの適用条件
18.4 パターン使用上の注意
18.5 パターンのサンプルコード
18.6 検討項目
18.7 参考情報
第19章 オブジェクトプール
19.1 パターン誕生の背景
19.2 パターン
19.3 パターンの適用条件
19.4 パターン使用上の注意
19.5 パターンのサンプルコード
19.6 検討項目
19.7 参考情報
第20章 空間分割
20.1 パターン誕生の背景
-
20.2 パターン
20.3 パターンの適用条件
20.4 パターン使用上の注意
20.5 パターンのサンプルコード
20.6 検討項目
20.7 参考情報